#ifndef PREREQUIS_H
#define PREREQUIS_H 1

#include "StatusCode.h"

#include <vector>

using namespace std;

/**
 * Structure permettant de gérer les prérequis raciaux.
 */
class Prerequis
{
 public:
  Prerequis( const unsigned& trait = 0, const unsigned& min = 3,
	     const unsigned& max = 26 );
  Prerequis(const Prerequis& preRequis);
  ~Prerequis();
  const Prerequis& operator=( const Prerequis& preRequis );
  StatusCode estOK( const std::vector< unsigned >& tab ) const;
  friend ostream& operator<<( ostream& os, const Prerequis& preRequis );
  friend FlotMessage& operator<<( FlotMessage& flot,
				  const Prerequis& preRequis );
 protected:
  unsigned
    TraitNbr, /**< Numéro du trait */
    Min,   /**< Valeur minimal du trait */
    Max;   /**< Valeur maximal du trait */
};

#endif // PREREQUIS_H
